<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         *  设计模式有哪些
         * 
         * **/ 

        /*
            1模块模式-把代码拆分成独立模块，避免全局污染
                组织工具函数、封装公共逻辑
                避免变量名冲突
            2观察者模式-让对象之间可以“监听”彼此的状态变化
                实现事件系统（如按钮点击、数据更新）
                解耦组件通信
            3单例模式--确保某个类在整个应用中只有一个实例
                状态管理（如 Vuex、Redux 的 store）
                日志记录器、配置中心等全局唯一对象
            4工厂模式（Factory Pattern）--通过工厂函数统一创建对象，屏蔽细节差异
                根据不同条件返回不同的对象实例
                提高代码扩展性
            5策略模式--定义一系列算法，把它们分别封装，并且可以互换使用
                表单校验规则切换
                不同支付方式的处理逻辑
            6装饰器模式-在不修改原对象的前提下，动态添加功能
                功能增强（如日志、缓存、权限检查）
                函数包装、拦截执行
            7发布-订阅模式（Pub/Sub Pattern）--类似观察者模式，但更加松耦合
                多组件间通信（如 Vue 的 EventBus）
                全局状态广播
        */ 

    </script>
</body>
</html>